﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MedicalAssistant.core.dao;
using MedicalAssistant.core.dao.binary;
using MedicalAssistant.core.dao.xml;

namespace MedicalAssistant.core
{
    public class Facade
    {
        private PacienteDAO pacienteDao;

        public Facade()
        {
            BinDAOFactory dao = BinDAOFactory.GetInstance();
            pacienteDao = dao.GetPacienteDao();            
        }

        public List<Paciente> GetAllPacientes()
        {
            return pacienteDao.GetAll();
        }

        public void SavePaciente(Paciente paciente)
        {
            if (pacienteDao.FindById(paciente.Prontuario) != null)
            {
                throw new ExcecaoDoSistema("Já existe paciente com esse número de prontuário");
            }

            pacienteDao.Save(paciente);
        }

        public Paciente FindByIdPacientes(uint noProntuario)
        {
            return pacienteDao.FindById(noProntuario);
        }

        public void EditarPaciente(Paciente paciente)
        {
            pacienteDao.Delete(paciente);
            pacienteDao.Save(paciente);
        }

        public void DeletePaciente(uint prontuario)
        {
            Paciente paciente = pacienteDao.FindById(prontuario);
            pacienteDao.Delete(paciente);
        }
    }
}
